package com.agenda.client;

import com.agenda.concorrencia.Semaforo;

public class Recursos {

	private static final int MAXIMO_ATIVIDADE = 2;

	private static Recursos INSTANCE;

	public static Recursos getINSTANCE() {
		if (INSTANCE == null)
			INSTANCE = new Recursos();

		return INSTANCE;
	}

	private Recursos() {

	}

	private int emAtividade = 0;

	private Semaforo semaforo = new Semaforo();

	public boolean registrarAtividade() {
		boolean registrou = false;
		semaforo.DOWN();

		if (emAtividade < MAXIMO_ATIVIDADE) {
			emAtividade++;
			registrou = true;
		}

		semaforo.UP();

		return registrou;
	}

	public void liberarAtividade() {
		semaforo.DOWN();
		emAtividade--;
		semaforo.UP();
	}
}
